#include <stdio.h>
#include "Linea.h"
#include "Alumno.h"
#include "Lista.h"

#define ARCHIVO "Alumnos.txt"

Lista* Leer(const char*archivo);
void Mostrar(Lista *lista);
void Terminar (Lista *lista);
void Ordenar (Lista *lista);

int main (int ac, char *av)
    {
    Lista *lista = Leer(ARCHIVO);
    Ordenar(lista);
    Mostrar(lista);
    Lista_destruir(lista,Alumno_destruir);
    Linea_destruir();
    }

 Lista* Leer(const char*archivo)
    {
    Alumno *p_alumno;
    Lista *lista = Lista_construir();

    FILE *f = fopen(ARCHIVO,"r");
    while (1)
        {
        p_alumno = Alumno_leer (f);
        if (!p_alumno) break;        
        Lista_agregar(lista,p_alumno);
        }
    fclose(f);
    return (lista);
    }
void Mostrar(Lista *lista)
    {
    Nodo *p;

    for (p=lista->primer; p; p = p->p_siguiente)
        Alumno_mostrar((Alumno*)(p->p_data));
    }

void Ordenar (Lista *lista)
    {
    Nodo *p,*q;
    Alumno *x, *y;

   for (p=lista->primer; p; p=p->p_siguiente)
        {
        for (q=p->p_siguiente; q; q = q->p_siguiente)
            {
            x = (Alumno*) p->p_data;
            y = (Alumno*) q->p_data;

            if (x->id > y->id)
                {
                p->p_data = y;
                q->p_data = x;
                }
            }
        }
    }

    
